#include<bits/stdc++.h>
using namespace std;
typedef array<int, 3> ed;
typedef long long ll;
vector<ed> eds;
const int maxn=10006;
int tc;
ll total;
int n, m, par[maxn];
int find(int u) {
  return u==par[u]?u:par[u]=find(par[u]);
}
void kruskal() {
  sort(eds.begin(),eds.end());
  for(int i=1;i<=n; ++i)par[i]=i;
  ll cnt=0,cost=0;
  for(auto e:eds) {
    auto w=e[0],u=e[1],v=e[2];
    u=find(u), v=find(v);
    if(u!=v) {
      par[u]=v;
      cost += w;
      cnt++;
    }
  }
  if(cnt==n-1)cout<<total+cost<<'\n';
  else cout<<"IMPOSSIBLE\n";
}
void reset() {
  total=0;
  eds.clear();
  memset(par, 0, sizeof par);
}
void input() {
  cin>>n>>m;
  eds.resize(m);
  for(int i=0; i<m; ++i) {
    int u,v,w;cin>>u>>v>>w;
    eds[i]={-w,u,v};
    total += w;
  }
}
int solve() {
  reset();
  input();
  kruskal();
  return 0;
}
int main() {
  // freopen("in.txt","r",stdin);
  // freopen("out.txt","w",stdout);
  cin>>tc;
  for(int t = 1; t <= tc; t++) {
    solve();
  }
  return 0;
}
